package com.qfedu.smart_community.service.impl;

import com.qfedu.smart_community.entity.Menus;
import com.qfedu.smart_community.mapper.MenusMapper;
import com.qfedu.smart_community.service.MenusService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @version v1.0
 * @Date 2023/10/24 14:33
 * @Author DARKER
 * @Email 1402216045@qq.com
 */
@Service
public class MenusImpl  implements MenusService {
    @Autowired
    private MenusMapper mapper;
    
    @Override
    public List<Menus> selectManagerAllMenus(Integer mgrId) {
        List<Menus> tree = new ArrayList<>(); //返回的树形集合
        List< Menus > all =   mapper.selectAll( mgrId ); //1. 查询全部的数据（不用区分层级）
        for (Menus menu : all) { //2. 过滤出一级菜单,添加到返回集合。
            //判断是否是一级
            if(menu.getParentMenuCode().equals("00")){
                tree.add( menu ); //添加到返回集合
            }else{
                //3. 把非一级菜单添加到 上级的 children集合中。
                for ( Menus p : all ){
                    //判断p是否是你的父级  自己 ParentMenuCode 是否 等于 别人的 MenuCode 如果相对 别人就是你的上级
                    if( p.getMenuCode().equals( menu.getParentMenuCode() )  ){
                        //添加到集合
                        p.getChildren().add(  menu );
                    }
                }
            }
        }
        return tree;
    }
}
